package zzztest;

import java.util.Arrays;

public class MyArrayList1<T> {
    // 定义一个集合，其内部维护一个数组(10)
    private T[] data;
    private int size;

    public MyArrayList1() {
        data = (T[]) new Object[10];
    }
    //add方法
    public boolean add(T t){
        //boolean flag = false;
        if (data.length==size){
            //扩容
            data= Arrays.copyOf(data,data.length+1);
        }
        data[size]=t;
        size++;
        return true;
    }
    //get方法
    public T get(int index){
        return data[index];
    }
    //set方法
    public T set(int index,T t){
        T old=data[index];
        data[index]=t;
        return old;
    }
    //size方法
    public int size(){
        return size;
    }
    //remove方法
    public T remove(int index){
        T old=data[index];
        //删除-----数组在该元素的后面进行前移
        for(int i=index;i<size()-1;i++){
            data[i]=data[i+1];
        }
        size--;
        return old;
    }
    //contains方法
    public boolean contains(T t){
        for (int i=0;i<size();i++){
            if(data[i].equals(t)){
                return true;
            }
        }
        return false;
    }
    //toString方法
    public String toString(){
        StringBuilder sb=new StringBuilder();
        if (size>0){
            sb.append("[");
            for (int i=0;i<size;i++){
                sb.append(data[i]);
                //添加逗号，只要不是最后一个
                if (i<size-1){
                    sb.append(",");
                }
            }
            sb.append("]");
            return sb.toString();
        }
        return "[]";
    }


}
